/**
 * @file AsignarResultadoPruebaHematologia.java
 * @brief Interfaz asigna los resultados de la prueba de hematologia general
 *
 * Copyright (C)  - May [2011]
 *
 * @author Carlos Castilla Ruiz
 * @version 01.00
 *
 */

package interfaces;

import clinica.ClinicaView;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JPanel;
import org.jdesktop.application.Action;
import clinica.Interfaces;
import GestorPruebas.*;
import Controlador.Controlador;
import java.io.IOException;
import java.sql.SQLException;
import GestorUsuarios.Paciente;

/**
 *
 * @author v2
 */
public class AsignarResultadoPruebaHematologia extends javax.swing.JPanel {

    private ClinicaView app;
    Interfaces _anterior;
    private HematologiaGeneral prueba;
    Pattern p = Pattern.compile("[0-9]+(\\.[0-9]+)?");
    Matcher m;
    boolean hay_errores;

    public AsignarResultadoPruebaHematologia(ClinicaView a) {
        initComponents();
        app = a;
    }


    public void limpiaEntradas(Prueba p,Interfaces ant) throws java.security.NoSuchAlgorithmException,java.lang.ClassNotFoundException,java.io.IOException,java.sql.SQLException{
       _anterior=ant;
       prueba= (HematologiaGeneral)p;

       prueba.setIdPrueba(p.getIdPrueba());
       monocitos.setText("");
       hemoglobina.setText("");
       disp_hematies.setText("");
       con_hemoglobina_corp.setText("");
       eosinofilos.setText("");
       p_linfocitos.setText("");
       hematocritos.setText("");
       p_neutrofilos.setText("");
       p_monocitos.setText("");
       p_basofilos.setText("");
       hematies.setText("");
       neutrofilos.setText("");
       p_eosinofilos.setText("");
       p_basofilos.setText("");
       hemoglobina_corp_media.setText("");
       linfocitos.setText("");
       leucocitos .setText("");
       vol_plaquetario_medio.setText("");
       plaquetas.setText("");
       vol_corp_medio.setText("");

       Paciente pac = (Paciente) Paciente.get(prueba.getIdPaciente());
       informacion_prueba.setText(pac.getNombre()+" "+pac.getApellidos()+", "+prueba.getTipo()+", "+prueba.getFecha());

    }


    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        disp_hematies = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        con_hemoglobina_corp = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        p_basofilos = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        eosinofilos = new javax.swing.JTextField();
        jLabel16 = new javax.swing.JLabel();
        hemoglobina = new javax.swing.JTextField();
        jLabel18 = new javax.swing.JLabel();
        p_linfocitos = new javax.swing.JTextField();
        jLabel14 = new javax.swing.JLabel();
        hematocritos = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        p_neutrofilos = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        p_monocitos = new javax.swing.JTextField();
        jLabel19 = new javax.swing.JLabel();
        basofilos = new javax.swing.JTextField();
        jLabel21 = new javax.swing.JLabel();
        monocitos = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        hematies = new javax.swing.JTextField();
        jLabel10 = new javax.swing.JLabel();
        neutrofilos = new javax.swing.JTextField();
        jLabel20 = new javax.swing.JLabel();
        p_eosinofilos = new javax.swing.JTextField();
        jLabel15 = new javax.swing.JLabel();
        hemoglobina_corp_media = new javax.swing.JTextField();
        jLabel17 = new javax.swing.JLabel();
        linfocitos = new javax.swing.JTextField();
        jLabel13 = new javax.swing.JLabel();
        leucocitos = new javax.swing.JTextField();
        jLabel22 = new javax.swing.JLabel();
        vol_plaquetario_medio = new javax.swing.JTextField();
        jLabel8 = new javax.swing.JLabel();
        plaquetas = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        vol_corp_medio = new javax.swing.JTextField();
        informacion_prueba = new javax.swing.JTextField();
        jButton2 = new javax.swing.JButton();
        jButton1 = new javax.swing.JButton();

        setRequestFocusEnabled(false);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Datos de la prueba", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 18))); // NOI18N
        jPanel1.setMaximumSize(new java.awt.Dimension(1780, 1420));
        jPanel1.setName("jPanel1"); // NOI18N
        jPanel1.setLayout(new java.awt.GridLayout(10, 4));

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance().getContext().getResourceMap(AsignarResultadoPruebaHematologia.class);
        jLabel3.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel3.setText("Disp. Hematies");
        jLabel3.setName("jLabel3"); // NOI18N
        jPanel1.add(jLabel3);

        disp_hematies.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        disp_hematies.setName("disp_hematies"); // NOI18N
        jPanel1.add(disp_hematies);

        jLabel2.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel2.setText("  Conc. Hemoglobina Corp.");
        jLabel2.setName("jLabel2"); // NOI18N
        jPanel1.add(jLabel2);

        con_hemoglobina_corp.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        con_hemoglobina_corp.setName("con_hemoglobina_corp"); // NOI18N
        jPanel1.add(con_hemoglobina_corp);

        jLabel1.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel1.setText("% Basofilos");
        jLabel1.setName("jLabel1"); // NOI18N
        jPanel1.add(jLabel1);

        p_basofilos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        p_basofilos.setName("p_basofilos"); // NOI18N
        jPanel1.add(p_basofilos);

        jLabel4.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel4.setText("  Eosinofilos");
        jLabel4.setName("jLabel4"); // NOI18N
        jPanel1.add(jLabel4);

        eosinofilos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        eosinofilos.setName("eosinofilos"); // NOI18N
        jPanel1.add(eosinofilos);

        jLabel16.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel16.setText("Hemoglobina");
        jLabel16.setName("jLabel16"); // NOI18N
        jPanel1.add(jLabel16);

        hemoglobina.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        hemoglobina.setName("hemoglobina"); // NOI18N
        jPanel1.add(hemoglobina);

        jLabel18.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel18.setText("  % Linfocitos");
        jLabel18.setName("jLabel18"); // NOI18N
        jPanel1.add(jLabel18);

        p_linfocitos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        p_linfocitos.setMaximumSize(new java.awt.Dimension(6, 28));
        p_linfocitos.setName("p_linfocitos"); // NOI18N
        jPanel1.add(p_linfocitos);

        jLabel14.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel14.setText("Hematocritos");
        jLabel14.setName("jLabel14"); // NOI18N
        jPanel1.add(jLabel14);

        hematocritos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        hematocritos.setMaximumSize(new java.awt.Dimension(6, 28));
        hematocritos.setName("hematocritos"); // NOI18N
        jPanel1.add(hematocritos);

        jLabel9.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel9.setText("  % Neutrofilos");
        jLabel9.setName("jLabel9"); // NOI18N
        jPanel1.add(jLabel9);

        p_neutrofilos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        p_neutrofilos.setMaximumSize(new java.awt.Dimension(6, 28));
        p_neutrofilos.setName("p_neutrofilos"); // NOI18N
        jPanel1.add(p_neutrofilos);

        jLabel6.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel6.setText("% Monocitos");
        jLabel6.setName("jLabel6"); // NOI18N
        jPanel1.add(jLabel6);

        p_monocitos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        p_monocitos.setMaximumSize(new java.awt.Dimension(6, 28));
        p_monocitos.setName("p_monocitos"); // NOI18N
        jPanel1.add(p_monocitos);

        jLabel19.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel19.setText("  Basofilos");
        jLabel19.setName("jLabel19"); // NOI18N
        jPanel1.add(jLabel19);

        basofilos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        basofilos.setMaximumSize(new java.awt.Dimension(6, 28));
        basofilos.setName("basofilos"); // NOI18N
        jPanel1.add(basofilos);

        jLabel21.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel21.setText("Monocitos");
        jLabel21.setName("jLabel21"); // NOI18N
        jPanel1.add(jLabel21);

        monocitos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        monocitos.setName("monocitos"); // NOI18N
        jPanel1.add(monocitos);

        jLabel5.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel5.setText("  Hematies");
        jLabel5.setName("jLabel5"); // NOI18N
        jPanel1.add(jLabel5);

        hematies.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        hematies.setName("hematies"); // NOI18N
        jPanel1.add(hematies);

        jLabel10.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel10.setText("Neutrofilos");
        jLabel10.setName("jLabel10"); // NOI18N
        jPanel1.add(jLabel10);

        neutrofilos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        neutrofilos.setName("neutrofilos"); // NOI18N
        jPanel1.add(neutrofilos);

        jLabel20.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel20.setText("  % Eosinofilos");
        jLabel20.setName("jLabel20"); // NOI18N
        jPanel1.add(jLabel20);

        p_eosinofilos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        p_eosinofilos.setName("p_eosinofilos"); // NOI18N
        jPanel1.add(p_eosinofilos);

        jLabel15.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel15.setText("Hemoglobina Corp. Media");
        jLabel15.setName("jLabel15"); // NOI18N
        jPanel1.add(jLabel15);

        hemoglobina_corp_media.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        hemoglobina_corp_media.setName("hemoglobina_corp_media"); // NOI18N
        jPanel1.add(hemoglobina_corp_media);

        jLabel17.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel17.setText("  Linfocitos");
        jLabel17.setName("jLabel17"); // NOI18N
        jPanel1.add(jLabel17);

        linfocitos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        linfocitos.setName("linfocitos"); // NOI18N
        jPanel1.add(linfocitos);

        jLabel13.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel13.setText("Leucocitos");
        jLabel13.setName("jLabel13"); // NOI18N
        jPanel1.add(jLabel13);

        leucocitos.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        leucocitos.setName("leucocitos"); // NOI18N
        jPanel1.add(leucocitos);

        jLabel22.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel22.setText("  Vol. Plaquetario Medio");
        jLabel22.setName("jLabel22"); // NOI18N
        jPanel1.add(jLabel22);

        vol_plaquetario_medio.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        vol_plaquetario_medio.setName("vol_plaquetario_medio"); // NOI18N
        jPanel1.add(vol_plaquetario_medio);

        jLabel8.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel8.setText("Plaquetas");
        jLabel8.setName("jLabel8"); // NOI18N
        jPanel1.add(jLabel8);

        plaquetas.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        plaquetas.setName("plaquetas"); // NOI18N
        jPanel1.add(plaquetas);

        jLabel7.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel7.setText("  Vol. Corp. Medio");
        jLabel7.setName("jLabel7"); // NOI18N
        jPanel1.add(jLabel7);

        vol_corp_medio.setFont(resourceMap.getFont("basofilos.font")); // NOI18N
        vol_corp_medio.setName("vol_corp_medio"); // NOI18N
        jPanel1.add(vol_corp_medio);

        informacion_prueba.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        informacion_prueba.setFocusable(false);
        informacion_prueba.setName("informacion_prueba"); // NOI18N

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance().getContext().getActionMap(AsignarResultadoPruebaHematologia.class, this);
        jButton2.setAction(actionMap.get("cancelar")); // NOI18N
        jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/interfaces/resources/ErrorCircle-64.png"))); // NOI18N
        jButton2.setName("jButton2"); // NOI18N

        jButton1.setAction(actionMap.get("aceptar")); // NOI18N
        jButton1.setIcon(resourceMap.getIcon("jButton1.icon")); // NOI18N
        jButton1.setName("jButton1"); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addComponent(informacion_prueba, javax.swing.GroupLayout.DEFAULT_SIZE, 612, Short.MAX_VALUE)
                        .addGap(76, 76, 76)
                        .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(28, 28, 28)
                        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 887, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 420, Short.MAX_VALUE)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jButton2)
                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(informacion_prueba, javax.swing.GroupLayout.DEFAULT_SIZE, 73, Short.MAX_VALUE))
                .addContainerGap())
        );
    }// </editor-fold>//GEN-END:initComponents

    public boolean comprobarFloat(javax.swing.JTextField tf,String d){
        m = p.matcher(tf.getText().toString());
        if (m.matches()==false) {
            hay_errores = true;
            app.addError("El "+d+" debe ser una cifra");
            return false;
        }
        return true;
    }

    @Action
    public void aceptar() throws java.text.ParseException,GestorUsuarios.IDException,java.security.NoSuchAlgorithmException,java.sql.SQLException,java.io.IOException,java.lang.ClassNotFoundException {
        app.limpiaErrores();
        hay_errores = false;
        String exito=null;
        float f=0;

        if(p_basofilos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido el porcentaje de basofilos.");
        }else{
            if(comprobarFloat(p_basofilos,"porcentaje de basofilos")){
                f=Float.parseFloat(p_basofilos.getText());
                if(f>0 && f<10000000){
                    prueba.setBasofilosPorc(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de porcentaje de basofilos.");
                }
            }
        }
        if(con_hemoglobina_corp.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido la concentracion de hemoglobina corpuscular.");
        }else{
            if(comprobarFloat(con_hemoglobina_corp,"concentracion de hemoglobina corpuscular")){
                f=Float.parseFloat(con_hemoglobina_corp.getText());
                if(f>0 && f<10000000){
                    prueba.setConcentacionHemoCorp(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de concentracion de hemoglobina corpuscular.");
                }
            }
        }
        if(disp_hematies.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido la dispersion de hematies.");
        }else{
            if(comprobarFloat(disp_hematies,"dispersión de hematies")){
                f=Float.parseFloat(disp_hematies.getText());
                if(f>0 && f<10000000){
                    prueba.setDispersionHematies(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de dispersion de hematies.");
                }
            }
        }
        if(eosinofilos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido los eosinofilos.");
        }else{
            if(comprobarFloat(eosinofilos,"eosinofilos")){
                f=Float.parseFloat(eosinofilos.getText());
                if(f>0 && f<10000000){
                    prueba.setEosinofilos(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de eosinofilos.");
                }
            }
        }
        if(hematies.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido los hematies.");
        }else{
            if(comprobarFloat(hematies,"hematies")){
                f=Float.parseFloat(hematies.getText());
                if(f>0 && f<10000000){
                    prueba.setHematies(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de hematies.");
                }
            }
        }
        if(hematocritos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido los hematocritos.");
        }else{
            if(comprobarFloat(hematocritos,"hematocritos")){
                f=Float.parseFloat(hematocritos.getText());
                if(f>0 && f<10000000){
                    prueba.setHematocritos(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de porcentaje de hematocritos.");
                }
            }
        }
        if(hemoglobina_corp_media.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido la hemoglobina corpuscular media.");
        }else{
            if(comprobarFloat(hemoglobina_corp_media,"hemoglobina corpuscular media")){
                f=Float.parseFloat(hemoglobina_corp_media.getText());
                if(f>0 && f<10000000){
                    prueba.setHemoglobinaCorpMedia(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de hemoglobina corpuscular media.");
                }
            }
        }
        if(hemoglobina.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido la hemoglobina.");
        }else{
            if(comprobarFloat(hemoglobina,"hemoglobina")){
                f=Float.parseFloat(hemoglobina.getText());
                if(f>0 && f<10000000){
                    prueba.setHemoglobina(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de hemoglobina.");
                }
            }
        }
        if(leucocitos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido los leucocitos.");
        }else{
            if(comprobarFloat(leucocitos,"leucocitos")){
                f=Float.parseFloat(leucocitos.getText());
                if(f>0 && f<10000000){
                    prueba.setLeucocitos(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de leucocitos.");
                }
            }
        }
        if(linfocitos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido los linfocitos.");
        }else{
            if(comprobarFloat(linfocitos,"linfocitos")){
                f=Float.parseFloat(linfocitos.getText());
                if(f>0 && f<10000000){
                    prueba.setLinfocitos(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de porcentaje de linfocitos.");
                }
            }
        }
        if(p_monocitos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido el porcentaje de monocitos.");
        }else{
            if(comprobarFloat(p_monocitos,"porcentaje de monocitos")){
                f=Float.parseFloat(p_monocitos.getText());
                if(f>0 && f<10000000){
                    prueba.setMonocitosPorc(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de porcentaje de monocitos.");
                }
            }
        }
        if(neutrofilos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido los neutrofilos.");
        }else{
            if(comprobarFloat(neutrofilos,"neutrofilos")){
                f=Float.parseFloat(neutrofilos.getText());
                if(f>0 && f<10000000){
                    prueba.setNeutrofilos(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de neutrofilos.");
                }
            }
        }
        if(p_neutrofilos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido el porcentaje de neutrofilos.");
        }else{
            if(comprobarFloat(p_neutrofilos,"porcentaje de neutrofilos")){
                f=Float.parseFloat(p_neutrofilos.getText());
                if(f>0 && f<10000000){
                    prueba.setNeutrofilosPorc(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de porcentaje de neutrofilos.");
                }
            }
        }
        if(plaquetas.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido las plaquetas.");
        }else{
            if(comprobarFloat(plaquetas,"plaquetas")){
                f=Float.parseFloat(plaquetas.getText());
                if(f>0 && f<10000000){
                    prueba.setPlaquetas(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de plaquetas.");
                }
            }
        }
        if(vol_corp_medio.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido el volumen corpuscular medio.");
        }else{
            if(comprobarFloat(vol_corp_medio,"volumen corpuscular medio")){
                f=Float.parseFloat(vol_corp_medio.getText());
                if(f>0 && f<10000000){
                    prueba.setVolumenCorpMedio(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de volumen corpuscular medio.");
                }
            }
        }
        if(vol_plaquetario_medio.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido el volumen plaquetario medio.");
        }else{
            if(comprobarFloat(vol_plaquetario_medio,"volumen plaquetario medio")){
                f=Float.parseFloat(vol_plaquetario_medio.getText());
                if(f>0 && f<10000000){
                    prueba.setVolumenPlaquetarioMedio(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de volumen plaquetario medio.");
                }
            }
        }
        if(monocitos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido los monocitos.");
        }else{
            if(comprobarFloat(monocitos,"monocitos")){
                f=Float.parseFloat(monocitos.getText());
                if(f>0 && f<10000000){
                    prueba.setMonocitos(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de monocitos.");
                }
            }
        }
        if(p_eosinofilos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido el porcentaje de eosinofilos.");
        }else{
            if(comprobarFloat(p_eosinofilos,"porcentaje de eosinofilos")){
                f=Float.parseFloat(p_eosinofilos.getText());
                if(f>0 && f<10000000){
                    prueba.setEosinofilosPorc(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto deporcentaje de eosinofilos.");
                }
            }
        }
        if(basofilos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido los p_basofilos.");
        }else{
            if(comprobarFloat(basofilos,"basofilos")){
                f=Float.parseFloat(basofilos.getText());
                if(f>0 && f<10000000){
                    prueba.setBasofilos(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de p_basofilos.");
                }
            }
        }
        if(p_linfocitos.getText().equals("")) {
            hay_errores = true;
            app.addError("No se ha introducido el porcentaje de linfocitos.");
        }else{
            if(comprobarFloat(p_linfocitos,"porcentaje de linfocitos")){
                f=Float.parseFloat(p_linfocitos.getText());
                if(f>0 && f<10000000){
                    prueba.setLinfocitosPorc(f);
                }else{
                    hay_errores = true;
                    app.addError("Valor incorrecto de porcentaje de linfocitos.");
                }
            }
        }

        if(hay_errores==true) {
            app.muestraListaErrores();
        } else {
            EstadoPrueba e=prueba.getEstadoPrueba();
            exito=Controlador.cambiarEstadoPrueba(prueba.getIdPrueba(),e.Realizada);
            if(exito==null) {
                //app.abrirMensajeExito("El estado ha sido modificado correctamente", _anterior);
            } else {
                app.abrirMensajeError(exito,_anterior);
            }
            exito=Controlador.asignarResultados(prueba);
            if(exito==null) {
                app.abrirMensajeExito("Los resultados han sido asignados correctamente", Interfaces.PRINCIPAL_TECNICO);
            } else {
                app.abrirMensajeError(exito,_anterior);
            }

        }
    }

    @Action
    public void cancelar() {
        app.volver(_anterior);
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JTextField basofilos;
    private javax.swing.JTextField con_hemoglobina_corp;
    private javax.swing.JTextField disp_hematies;
    private javax.swing.JTextField eosinofilos;
    private javax.swing.JTextField hematies;
    private javax.swing.JTextField hematocritos;
    private javax.swing.JTextField hemoglobina;
    private javax.swing.JTextField hemoglobina_corp_media;
    private javax.swing.JTextField informacion_prueba;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField leucocitos;
    private javax.swing.JTextField linfocitos;
    private javax.swing.JTextField monocitos;
    private javax.swing.JTextField neutrofilos;
    private javax.swing.JTextField p_basofilos;
    private javax.swing.JTextField p_eosinofilos;
    private javax.swing.JTextField p_linfocitos;
    private javax.swing.JTextField p_monocitos;
    private javax.swing.JTextField p_neutrofilos;
    private javax.swing.JTextField plaquetas;
    private javax.swing.JTextField vol_corp_medio;
    private javax.swing.JTextField vol_plaquetario_medio;
    // End of variables declaration//GEN-END:variables

}
